﻿/**********************************************************************
 * @file   OperAbstractSpectra.h
 * @brief  频谱操作器抽象类接口声明
 * @author BaGuijun (baguijun@163.com)
 * @date   2024-12-06
 *********************************************************************/
#ifndef _OPER_MATERIAL_ABSTRACT_H___
#define _OPER_MATERIAL_ABSTRACT_H___
 
#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"
#include "OperatorsInterfaceAPI.h"

namespace EventOper
{
    /**
     * @brief  频谱操作器抽象类接口声明
     * @author BaGuijun (baguijun@163.com)
     * @date   2024-12-06
     */
    class OperatorsInterfaceAPI OperAbstractSpectra : public Core::FITKActionOperator
    {
    public:
        /**
         * @brief    构造函数
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-06
         */
        explicit OperAbstractSpectra() = default;
        /**
         * @brief    Destroy the Oper Abstract Material object
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-06
         */
        virtual ~OperAbstractSpectra() = 0;
         /**
         * @brief    创建频谱
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-06
         */ 
        virtual void createSpectra();
        /**
         * @brief    复制频谱
         * @param[i] id          频谱id
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-06
         * @param matID
         */ 
        virtual void duplicateSpectra(const int id);
        /**
         * @brief    编辑频谱
         * @param[i] id          频谱id
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-06
         */
        virtual void editSpectra(const int id);
         /**
         * @brief   删除频谱
         * @param[i]id          频谱id
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-06
         */
        virtual void removeSpectra(const int id);
        /**
         * @brief    更新笔记
         * @param[i] id          频谱id
         * @author   BaGuijun (baguijun@163.com)
         * @date     2024-12-06
         */
        virtual void editNotes(const int id);
    };
}
#endif
